1
תגובות

הצגת מתקפות

פתח ilikeme ,
תראו אני עובד על משחק דפדפן, אני רוצה להציג למשתמש את המתקפות שלו,
עכשיו אני רוצה שכל 3 מתקפות הוא יצור DIV חדש ויסגור את הישן, אבל משום מה זה פותח וסוגר את הDIV כל מתקפה לא כל 3 מתקפות

הקוד:
<?php
$num = 1;
if($action == 'clan')
    $con = array('clan'=>Account::getAccount()->clan,'village'=>0);
else
    $con = array('village'=>Account::getAccount()->village,'clan'=>0);
$skills = SkillList::model()->findAllByAttributes($con, array('order'=>'time DESC'));
foreach($skills as $skill)
{
    if($num == 1):
    ?>
        <div class="skill_list"> <!-- Start Skill list -->
    <?php endif; ?>
         <div class="skill">
            <h3><?php echo $skill->name; ?></h3>
            <img src="static/images/skills/<?php echo $skill->id; ?>.jpg" width="100" height="100" alt="<?php echo $skill->name; ?>" title="<?php echo $skill->name; ?>"  /><br />
            <div style="font-size:12px;width:160px;background:#f1f1f1;border: 1px solid #DCDCDC;margin-top:4px"><?php echo nl2br($skill->description); ?></div>
            <table>
                <tr>
                    <td><b>מחיר</b></td>
                    <td><?php echo number_format($skill->price); ?> נקודות</td>
                </tr>
                <tr>
                    <td><b>כוח מתקפה</b></td>
                    <td style="color:#930000">+<?php echo $skill->attack; ?> כוח התקפה</td>
                </tr>
                <tr>
                    <td><b>הגנה הגנה</b></td>
                    <td style="color:#074100">+<?php echo $skill->defense; ?> כוח הגנה</td>
                </tr>
            </table>
            <div style="margin-top:1px">
                <a href="buy_skill?id=<?php echo $skill->id; ?>">קנה מתקפה</a>
            </div>
        </div>  
    <?php if($num == 3 || next($skills) == false): ?>
        </div> <!-- End Skill list -->
    <?php
    $num = 0;
    endif;
    $num++;
}
?>

1 תשובות

avatar ענה משתמש_107722 ב 08 לפברואר 2012 #

משהו כזה

<?php

$village = $clan = 0;
if($action == 'clan')
{
    $clan =Account::getAccount()->clan;
}
else
{
  $village = Account::getAccount()->village;
}

$skills = SkillList::model()->findAllByAttributes(array('village'=>$village,'clan'=>$clan), array('order'=>'time DESC'));
$length = sizeof($skills);

if( $skills > 0):

  ?> <div class="skill_list"> <!-- Start Skill list --> <?php

  for($i = 0; $i < $length; $i++)
  {
    ?>
     <div class="skill">
      <h3><?php echo $skill->name; ?></h3>
      <img src="static/images/skills/<?php echo $skill->id; ?>.jpg" width="100" height="100" alt="<?php echo $skill->name; ?>" title="<?php echo $skill->name; ?>"  /><br />
      <div style="font-size:12px;width:160px;background:#f1f1f1;border: 1px solid #DCDCDC;margin-top:4px"><?php echo nl2br($skill->description); ?></div>
      <table>
        <tr>
          <td><b>מחיר</b></td>
          <td><?php echo number_format($skill->price); ?> נקודות</td>
        </tr>
        <tr>
          <td><b>כוח מתקפה</b></td>
          <td style="color:#930000">+<?php echo $skill->attack; ?> כוח התקפה</td>
        </tr>
        <tr>
          <td><b>הגנה הגנה</b></td>
          <td style="color:#074100">+<?php echo $skill->defense; ?> כוח הגנה</td>
        </tr>
      </table>
      <div style="margin-top:1px">
        <a href="buy_skill?id=<?php echo $skill->id; ?>">קנה מתקפה</a>
      </div>
    </div>  
    <?php
   
    if($i+1 % 3 === 0 && $i+1 <= $length )
    {
      ?>
      </div> <!-- End Skill list -->
      <div class="skill_list"> <!-- Start Skill list -->
      <?php
    }
  }
 
  ?> </div> <!-- End Skill list --> <?php

endif;


רק דבר אחד לא ברור לי. איך קורה ששליפות ממסד ו HTML נמצאים באותו קובץ?
כל הלוגיקה - בקונטרולר. לתצוגה מגיעים רק משתנים. לא אמורים להיות בוויו שום שליפות ושום דבר אחר.